// 日期格式化工具
export const dateUtil = {
  /**
   * 格式化日期为yyyy-MM-dd格式
   * @param {Date} date - 日期对象
   * @returns {string} 格式化后的日期字符串
   */
  formatDate (date) {
    const year = date.getFullYear();
    const month = String(date.getMonth() + 1).padStart(2, '0');
    const day = String(date.getDate()).padStart(2, '0');
    return `${year}-${month}-${day}`;
  },

  /**
   * 格式化日期为yyyy-MM格式
   * @param {Date} date - 日期对象
   * @returns {string} 格式化后的年月字符串
   */
  formatMonth (date) {
    const year = date.getFullYear();
    const month = String(date.getMonth() + 1).padStart(2, '0');
    return `${year}-${month}`;
  },

  /**
   * 获取最近一周的时间范围（以当天为结束时间）
   * @returns {Object} 包含start和end的对象，格式为yyyy-MM-dd
   */
  getRecentWeek () {
    const endDate = new Date(); // 当天作为结束时间

    // 计算开始时间（结束时间减去6天）
    const startDate = new Date(endDate);
    startDate.setDate(endDate.getDate() - 6);

    return {
      start: this.formatDate(startDate),
      end: this.formatDate(endDate)
    };
  },

  /**
   * 获取最近三个月的时间范围（以当前月为结束时间）
   * @returns {Object} 包含start和end的对象，格式为yyyy-MM
   */
  getRecentThreeMonths () {
    const endDate = new Date(); // 当前日期

    // 计算开始时间（当前月减去2个月）
    const startDate = new Date(endDate);
    startDate.setMonth(endDate.getMonth() - 2);

    return {
      start: this.formatMonth(startDate),
      end: this.formatMonth(endDate)
    };
  },

  // 其他日期处理方法
  getYesterday () {
    const yesterday = new Date();
    yesterday.setDate(yesterday.getDate() - 1);
    return this.formatDate(yesterday);
  }
};

export default dateUtil;
